﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <!-- Documenting T:NAnt.Contrib.Tasks.ChooseTask-->
  <head>
    <meta http-equiv="Content-Language" content="en-ca" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="../style.css" />
    <title>&lt;choose&gt; Task</title>
  </head>
  <body>
    <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
      <tr>
        <td class="NavBar-Cell">
          <a href="">
            <b>NAntContrib</b>
          </a>
          <img alt="-&gt;" src="../images/arrow.gif" />
          <a href="../index.html">Help</a>
          <img alt="-&gt;" src="../images/arrow.gif" />
          <a href="../tasks/index.html">Task Reference</a>
          <img alt="-&gt;" src="../images/arrow.gif" /> &lt;choose&gt;</td>
        <td class="NavBar-Cell" align="right">
                        v0.85</td>
      </tr>
    </table>
    <h1>&lt;choose&gt;</h1>
    <p>
      <p> Executes an alternate set of tasks depending on conditions that are individually set on each group of tasks. </p>
    </p>
    <p> The <a href="../tasks/choose.html">&lt;choose&gt;</a> task selects one among a number of possible alternatives. It consists of a sequence of <code>&lt;when&gt;</code> elements followed by an optional <code>&lt;otherwise&gt;</code> element. </p>
    <p> Each <code>&lt;when&gt;</code> element has a single attribute, test, which specifies an expression. The content of the <code>&lt;when&gt;</code> and <code>&lt;otherwise&gt;</code> elements is a set of nested tasks. </p>
    <p> The content of the first, and only the first, <code>&lt;when&gt;</code> element whose test is <b>true</b> is executed. If no <code>&lt;when&gt;</code> element is <b>true</b>, the content of the <code>&lt;otherwise&gt;</code> element is executed. If no <code>&lt;when&gt;</code> element is <b>true</b>, and no <code>&lt;otherwise&gt;</code> element is present, nothing is done. </p>
    <h3>Parameters</h3>
    <div class="table">
      <table>
        <tr>
          <th>Attribute</th>
          <th style="text-align: center;">Type</th>
          <th>Description</th>
          <th style="text-align: center;">Required</th>
        </tr>
        <tr>
          <td valign="top">failonerror</td>
          <td style="text-align: center;">bool</td>
          <td> Determines if task failure stops the build, or is just reported. The default is <b>true</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">if</td>
          <td style="text-align: center;">bool</td>
          <td> If <b>true</b> then the task will be executed; otherwise, skipped. The default is <b>true</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">unless</td>
          <td style="text-align: center;">bool</td>
          <td> Opposite of <code>if</code>. If <b>false</b> then the task will be executed; otherwise, skipped. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">verbose</td>
          <td style="text-align: center;">bool</td>
          <td> Determines whether the task should report detailed build log messages. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
      </table>
    </div>
    <h3>Nested Elements:</h3>
    <!--Element-->
    <h4>
      <a id="when">
      </a>
                    &lt;when&gt;
                </h4>
    <div class="nested-element"> One or more alternative sets of tasks to execute. <p> Groups a set of tasks to execute when a condition is met. </p><h3>Parameters</h3><div class="table"><table><tr><th>Attribute</th><th style="text-align: center;">Type</th><th>Description</th><th style="text-align: center;">Required</th></tr><tr><td valign="top" class="required">test</td><td style="text-align: center;">bool</td><td> Used to test arbitrary boolean expression. </td><td style="text-align: center;">True</td></tr></table></div><p /></div>
    <h4>
      <a id="when">
      </a>
                    &lt;/when&gt;
                </h4>
    <!--Element-->
    <h4>
      <a id="otherwise">
      </a>
                    &lt;otherwise&gt;
                </h4>
    <div class="nested-element"> The set of tasks to execute if none of the <a href="../elements/NAnt.Contrib.Tasks.When.html">When</a> elements are <b>true</b>. <p> Executes embedded tasks in the order in which they are defined. </p><p /></div>
    <h4>
      <a id="otherwise">
      </a>
                    &lt;/otherwise&gt;
                </h4>
    <h3>Examples</h3>
    <ul class="examples">
      <li>
        <p> Execute alternate set of tasks depending on the configuration being built. </p>
        <pre class="code">
&lt;choose&gt;
    &lt;when test="${build.config == 'Debug'}"&gt;
        &lt;!-- compile app in debug configuration --&gt;
        ...
    &lt;/when&gt;
    &lt;when test="${build.config == 'Release'}"&gt;
        &lt;!-- compile app in release configuration --&gt;
        ...
    &lt;/when&gt;
    &lt;otherwise&gt;
        &lt;fail&gt;Build configuration '${build.config}' is not supported!&lt;/fail&gt;
    &lt;/otherwise&gt;
&lt;/choose&gt;
    </pre>
      </li>
    </ul>
    <h3>Requirements</h3>
    <div style="margin-left: 20px;">
      <b>Assembly:</b> NAnt.Contrib.Tasks (0.85.2479.0)
            </div>
  </body>
</html>